package fun

import (
	"bytes"
	"encoding/json"
)

// @title: json转map
// @param: b([]byte)
// @return: map[string]interface{}
// @return: error
// @description: 解决JSON格式的数据反序列化为map[string]interface{}时，数字变成科学计数法表示的浮点数问题
// @date: 2024/7/7 17:00
func JsonToMap(b []byte) (map[string]interface{}, error) {
	var err error

	dataMap := make(map[string]interface{})
	decoder := json.NewDecoder(bytes.NewReader(b))
	decoder.UseNumber()
	err = decoder.Decode(&dataMap)
	if err != nil {
		return nil, err
	}

	return dataMap, nil
}

// @title: map转json
// @param: map[string]interface{}
// @return: string
// @return: error
// @description: 解决JSON格式的数据反序列化为map[string]interface{}时，数字变成科学计数法表示的浮点数问题
// @date: 2024/7/7 17:00
func MapToJson(param map[string]interface{}) string {
	dataType, _ := json.Marshal(param)
	dataString := string(dataType)
	return dataString
}
